package Controle;


import util.Constantes;
import Jplay.Animation;
import Jplay.GameImage;
import Jplay.Mouse;
import MotorGrafico.InterfaceTela;
import MotorGrafico.MotorGrafico;

/**
 * Respons�vel pela apresenta��o da tela nivel de jogada.
 * 
 * @author Gefersom C. Lima
 * 
 */
public class TelaNivelJogada implements InterfaceTela {
	Animation btnNivel01;
	Animation btnNivel02;
	Animation btnNivel03;
	Animation btnVoltar;

	GameImage imgFundo;
	Mouse mouse;

	boolean boolVoltar;
	boolean boolNivel;
	public static int nivelEscolhido = 1;

	/**
	 * Usado para carregar os objetos na mem�ria principal.
	 */
	@Override
	public void carregar() {
		btnNivel01 = new Animation(Constantes.IMG_TELA_NIVEL_JOGO_NIVEL_01, 2);
		btnNivel02 = new Animation(Constantes.IMG_TELA_NIVEL_JOGO_NIVEL_02, 2);
		btnNivel03 = new Animation(Constantes.IMG_TELA_NIVEL_JOGO_NIVEL_03, 2);
		btnVoltar = new Animation(Constantes.IMG_TELA_ESTADO_JOGO_BTN_VOLTAR, 2);

		imgFundo = new GameImage(Constantes.IMG_TELA_MENU_FUNDO);

		int y = 140;
		int x = 220;

		btnNivel01.setPosition(x, y);
		btnNivel02.setPosition(x, btnNivel01.y + btnNivel01.height + 4);
		btnNivel03.setPosition(x, btnNivel02.y + btnNivel02.height + 4);
		btnVoltar.setPosition(x, btnNivel03.y + btnNivel03.height + 4);

		imgFundo.setPosition(x - 30, y - 20);

		mouse = MotorGrafico.getInstance().getJanela().getMouse();

		boolVoltar = false;
		boolVoltar = false;
		boolNivel = false;
		//nivelEscolhido = 0;
		//nivelEscolhido = -1;
	}

	/**
	 * Usado para descarregar os objetos criados da mem�ria.
	 */
	@Override
	public void descarregar() {
		// TODO Auto-generated method stub
	}

	/**
	 * Respons�vel por controlar a l�gica inerente a classe corrente.
	 */
	@Override
	public void logica() {
		btnNivel01.setCurrFrame(0);
		btnNivel02.setCurrFrame(0);
		btnNivel03.setCurrFrame(0);
		btnVoltar.setCurrFrame(0);

		if (mouse.isOverObject(btnNivel01)) {
			btnNivel01.setCurrFrame(1);
			if (mouse.isLeftButtonPressed() == true) {
				nivelEscolhido = 1;
				boolNivel = true;
			}
		}

		if (mouse.isOverObject(btnNivel02)) {
			btnNivel02.setCurrFrame(1);
			if (mouse.isLeftButtonPressed() == true) {
				nivelEscolhido = 2;
				boolNivel = true;
			}
		}

		if (mouse.isOverObject(btnNivel03)) {
			btnNivel03.setCurrFrame(1);
			if (mouse.isLeftButtonPressed() == true) {
				nivelEscolhido = 3;
				boolNivel = true;
			}
		}

		if (mouse.isOverObject(btnVoltar)) {
			btnVoltar.setCurrFrame(1);
			if (mouse.isLeftButtonPressed() == true) {
				boolVoltar = true;
				boolNivel = true;
			}
		}
	}

	/**
	 * Retorna o n�vel de jogada escolhido.
	 * 
	 * @return int
	 */
	public int getNivel() {
		return this.nivelEscolhido;
	}

	/**
	 * Respons�vel por desenhar as imagens usadas.
	 */
	@Override
	public void desenhar() {
		imgFundo.draw();
		btnNivel01.draw();
		btnNivel02.draw();
		btnNivel03.draw();
		btnVoltar.draw();
	}

	/**
	 * Seta a pr�xima tela a ser executada.
	 */
	@Override
	public void proxTela() {

		if (boolNivel) {
			boolVoltar = true;
			boolNivel = false;
		}

		if (boolVoltar) {
			MotorGrafico.getInstance().setProxTela(Constantes.TELA_MENU);
			boolVoltar = false;
		}
	}
}
